2.6 CROSS JOIN
Der CROSS JOIN
ist in der Praxis weitgehend bedeutungslos – wir sehen
gleich warum – er wird hier nur der Vollständigkeit halber erwähnt.
Wir nehmen dazu erneut unser Beispiel aus Kapitel 2.3. Dort hatten wir den Versuch unternommen, die WHERE
-Zeile zu entfernen. Die Anweisung lautete dann:
SELECT vorname, name, abteilungsname FROM tbl_abteilung, tbl_mitarbeiter
Genau das nennt man einen CROSS JOIN
. Dabei wird jeder Datensatz der
einen Tabelle mit jedem Datensatz der anderen Tabelle verknüpft –
jeder Mitarbeiter erhält somit alle
Abteilungen der ganzen Tabelle zugeordnet. Man nennt dies auch das Kreuzprodukt
(cross = engl.: Kreuz) zweier Tabellen - was in diesem, wie auch in vielen anderen
praktischen Anwendungsfällen eine völlig unsinnige Aussage liefert in speziellen
Fällen aber durchaus seine Berechtigung hat.
Lassen wir hier das Komma weg und schreiben dafür das Schlüsselwort CROSS JOIN
!
SELECT vorname, name, abteilungsname FROM tbl_abteilung CROSS JOIN tbl_mitarbeiter
Wie Sie sehen, erhalten wir das gleiche Ergebnis.
Probieren Sie die Abfragen in phpMyAdmin aus. Experimentieren Sie auch mit den verschiedenen JOIN-Arten herum. Schauen Sie sich immer die Ergebnismenge kritisch an. Eine unbedacht formulierte SQL-Abfrage kann zu unerwünschten Ergebnissen führen.